package cn.yh.shop.util;

import java.text.SimpleDateFormat;
import java.util.Date;
import redis.clients.jedis.Jedis;

/**
 * @Description:生成订单号
 * @author:"李战召"
 * @time:2016年12月15日 下午3:42:13
 */
public class OrderIdUtils {

	private Jedis jedis ;
	
	/**
	 * @Description:TODO
	 * @param date  传入时间
	 * @param Serviceid  两位业务码
	 * @return
	 * String
	 * @exception:
	 * @author: "李战召"
	 * @time:2016年12月15日 下午3:44:15
	 */
	public  String getOrderId(Date date, Integer serviceid){
		jedis = RedisUtils.getPool().getResource();
		Long incr = RedisUtils.getPool().getResource().incr("autoid");
		if(incr == 999999){
			jedis.set("autoid", "1");
		}
		return date2String(date)+serviceid+incr2String(incr);
	} 
	
	/**
	 * @Description:时间转化为字符串
	 * @param date
	 * @return
	 * String
	 * @exception:
	 * @author: "李战召"
	 * @time:2016年12月16日 上午9:56:24
	 */
	public String date2String (Date date){
		SimpleDateFormat sdf = new SimpleDateFormat("yyMMddHHmm");
		return sdf.format(date);
	}
	
	/**
	 * @Description:生成6位随机数
	 * @param incr
	 * @return
	 * String
	 * @exception:
	 * @author: "李战召"
	 * @time:2016年12月15日 下午4:31:56
	 */
	public String incr2String(Long incr){
		int j=1;
		String result="";
		for(int i=1;i<=7;i++){
			if(incr/j == 0){
				j = i;
				break;
			}
			j *=10;
		}
		switch (j) {
		case 2:
			result = "00000" + incr;
			break;
		case 3:
			result = "0000" + incr;
			break;
		case 4:
			result = "000" + incr;
			break;
		case 5:
			result = "00" + incr;
			break;
		case 6:
			result = "0" + incr;
			break;
		case 7:
			result = "" + incr;
			break;
		}
		return result;
	}
}
